table of contents
SETJMP(3) | Funciones de biblioteca | SETJMP(3) |
NOMBRE¶
setjmp, sigsetjmp - guardan el contexto de pila para saltos no locales
SINOPSIS¶
#include <setjmp.h>
int setjmp(jmp_buf env); int sigsetjmp(sigjmp_buf env, int savesigs);
DESCRIPCIÓN¶
Las funciones setjmp() y longjmp() son útiles para tratar con errores e interrupciones encontradas en una subrutina de bajo nivel de un programa. setjmp() guarda el entorno/contexto de pila en env para un uso posterior de longjmp(). El contexto de pila será invalidado si la función que llamó a setjmp() regresa.
sigsetjmp() es similar a setjmp(). Si savesigs es distinto de cero, el conjunto de señales bloqueadas se guarda en env y será restaurado si se llama más tarde a siglongjmp() con este env.
VALOR DEVUELTO¶
setjmp() y sigsetjmp() devuelven 0 si regresan directamente, y no-cero cuando regresan desde longjmp() usando el contexto previamente salvaguardado.
CONFORME A¶
POSIX, ISO 9899 (C99)
OBSERVACIONES¶
POSIX no especifica si setjmp guardará el contexto de señales. (En SYSV no lo hará. En BSD4.3 sí, y hay una función _setjmp que no lo hará). Si quiere guardar las máscaras de señales, use sigsetjmp.
setjmp() y sigsetjmp hacen que los programas sean difíciles de entender y mantener. Si es posible busque otra alternativa.
VÉASE TAMBIÉN¶
2 marzo 1997 | Linux |